package com.syf.kit.core.ds.config;

import lombok.Data;

import java.io.Serializable;

@Data
public class RdsDBPoolConfig implements Serializable {
    /**
     * 初始大小
     */
    private int initSize = 1;

    /**
     * 最小空闲连接数
     */
    private int minIdleSize = 1;

    /**
     * 最大空闲连接数
     */
    private int maxIdleSize = 1;

    /**
     * 最大连接数
     */
    private int maxSize = 20;

    /**
     * 获取连接最大等待时间，-1表示不超时，单位毫秒
     */
    private int borrowTimeOut = 3000;

    /**
     * 获取连接的最大等待时间，单位Ms
     */

    private String maxWaitMs = "10000";

    /**
     * 连接有效性校验sql
     */
    private String validateSql = "SELECT 'x'";

    /**
     * 从池中拿取出来，是否校验
     */
    private boolean testOnBorrow = false;

    /**
     * 归还给池中，是否校验
     */
    private boolean testOnReturn = false;

    /**
     * 在池中空闲时，是否校验
     */
    private boolean testWhileIdle = true;

    /**
     * 回收空闲的线程的运行间隔时间.
     */
    private int timeBetweenEvictionRunsMs = 300000;

    /**
     * 连接池中连接，可空闲的时间. 默认两分钟
     */
    private int minEvictableIdleTimeMs = 120000;

}
